#!/usr/bin/env python
# -*- coding: utf-8 -*-

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from common.yaml_config import GetConf


class ChromeDriverConfig:
    def driver_config(self):
        """
        浏览器驱动
        :return:
        """
        options = webdriver.ChromeOptions()
        # 设置窗口大小，设置为1920*1080
        options.add_argument("window-size=1920,1080")
        options.add_argument("window-position=0,0")
        # 去除"chrome正受到自动测试软件的控制"的提示
        options.add_experimental_option("excludeSwitches", ["enable-automation"])
        # 解决selenium无法访问https的问题
        options.add_argument("--ignore-certificate-errors")
        # 允许忽略localhost上的TLS/SSL错误
        options.add_argument("--allow-insecure-localhost")
        # 设置为无痕模式
        options.add_argument("--incognito")
        # 设置为无头模式
        if GetConf().get_current_status():
            options.add_argument("--headless")
        # 解决卡顿
        options.add_argument("--disable-gpu")
        options.add_argument("--no-sandbox")
        options.add_argument("--disable-dev-shm-usage")

        # 使用ChromeDriverManager安装ChromeDriver，并获取驱动程序的路径
        download_driver_path = ChromeDriverManager().install()
        # 创建Chrome WebDriver，并指定驱动路径
        driver = webdriver.Chrome(service=Service(download_driver_path), options=options)

        # driver = webdriver.Chrome(options=options)
        # driver = webdriver.Chrome(ChromeDriverManager(url="http://chromedriver.storage.googleapis.com/index.html?path=",
        #                                               latest_release_url="http://chromedriver.storage.googleapis.com/LATEST_RELEASE").install(), options=options)
        # 删除所有cookies
        driver.delete_all_cookies()
        # 设置为全屏模式
        driver.maximize_window()
        return driver
